﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using dao.daos;
using negocio.commons;
using negocio.entidades;

namespace negocio.servicios
{
    public class CiudadService : IService<Ciudad>
    {
        private CiudadDao dao = new CiudadDao();

        public List<Ciudad> ObtenerTodo()
        {
            return LeerDataReaderList(dao.ObtenerTodo());
        }

        public List<Ciudad> ObtenerActivos()
        {
            return LeerDataReaderList(dao.ObtenerActivos());
        }

        public Ciudad ObtenerPorId(int id)
        {
            return LeerDataReader(dao.ObtenerPorId(id));
        }

        public List<Ciudad> ObtenerPorProvincia(int idProvincia)
        {
            return LeerDataReaderList(dao.ObtenerPorProvincia(idProvincia));
        }

        public bool Existe(Ciudad busObject)
        {
            throw new NotImplementedException();
        }

        public void Eliminar(Ciudad busObject)
        {
            throw new NotImplementedException();
        }

        public void Insertar(Ciudad busObject)
        {
            throw new NotImplementedException();
        }

        public void Modificar(Ciudad busObject)
        {
            throw new NotImplementedException();
        }

        private Ciudad LeerDataReader(SqlDataReader dr)
        {
            Ciudad bus = new Ciudad();
            while (dr.Read())
            {
                bus.Id = Convert.ToInt32(dr["ID_CIUDAD"]);
                bus.Nombre = Convert.ToString(dr["NOMBRE"]);
                bus.IdProvincia = Convert.ToInt32(dr["ID_PROVINCIA"]);
            }
            dr.Close();
            return bus;
        }

        private List<Ciudad> LeerDataReaderList(SqlDataReader dr)
        {
            List<Ciudad> listBus = new List<Ciudad>();
            while (dr.Read())
            {
                Ciudad bus = new Ciudad();
                bus.Id = Convert.ToInt32(dr["ID_CIUDAD"]);
                bus.Nombre = Convert.ToString(dr["NOMBRE"]);
                bus.IdProvincia = Convert.ToInt32(dr["ID_PROVINCIA"]);
                listBus.Add(bus);
            }
            dr.Close();
            return listBus;
        }
    }
}
